/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package comportement;

import InterfaceGraphique.BoiteMessage;
import InterfaceGraphique.MainApplication;
import cartes.Carte;
import cartes.Monstre;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import plateau.Joueur;
import plateau.exceptions.DefausserClasseRaceException;

/**
 *
 * @author Arthur
 */
public class ActionPerdreClasse implements ActionCarte, Serializable {
    public ActionPerdreClasse() {
        ;
    }
    
    /*
     * Carte malédiction changement de race : si t'as une race tu la défausse et tu choppes la première de la pioche
     */
    public void utiliser(Joueur j) {
        ArrayList<Carte> classes = j.getInventaire().getCartesClasse();
        if( classes.isEmpty() ) {
            j.upNiveau(1*(-1), Boolean.FALSE);
        }
        else if( classes.size() == 1 ) {
            try {
                j.defausserInventaire(classes.get(0));
            } catch (DefausserClasseRaceException ex) {
                new BoiteMessage(ex.getMessage());
            }
        }
        else {
            MainApplication.choisirClasse(j, this);
        }
    }
    
    public void choixCarte ( Joueur j, Carte c ) {
        try {
            j.defausserInventaire(c);
        } catch (DefausserClasseRaceException ex) {
            new BoiteMessage(ex.getMessage());
        }
    }

    public String getDescription() {
       String description;
        description = "Vous perdez tout votre inventaire" ;
        return description;
    }

    public void utiliser(Joueur j, Joueur j2) {
        this.utiliser(j2);
    }

    public void utiliser(Monstre m) {
        throw new UnsupportedOperationException("Not supported yet.");
    }
}
